/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package spaceinvaders.extra;

import java.applet.Applet;
import java.applet.AudioClip;
import java.net.URL;

/**
 * Classe feita para utilizacao de efeitos sonoros no jogo.
 * @author Danilo Augusto Silva
 */
public class EfeitosSonoros {

    private AudioClip[] ef = new AudioClip[4]; //vetor de objetos para armazenar os efeitos sonoros.
    private AudioClip current; //objeto para executar os efeitos sonoros.

    /**
     * Construtor iniciando o vetor de efeitos sonoros.
     */

    public EfeitosSonoros() {
        for (int i = 0; i < ef.length; i++) {
            String filename = "/musicas/soundeffect" + i + ".wav";
            URL url = EfeitosSonoros.class.getResource(filename);

            ef[i] = Applet.newAudioClip(url);
        }

    }

    /**
     * Foi feito para facilitar a chamada dos efeitos sonoros
     */

    public enum TipoEfeitosSonoros {

        LASER, EXPLOSION, VICTORY, PAUSED}

    /**
     * Executa efeito sonoro desejado
     * @param tipo Qual efeito sonoro deseja tocar
     */


    public void playSoundEffect(TipoEfeitosSonoros tipo) {
        if (tipo == TipoEfeitosSonoros.LASER) {
            current = ef[0];
        }
        if (tipo == TipoEfeitosSonoros.EXPLOSION) {
            current = ef[1];
        }
        if (tipo == TipoEfeitosSonoros.VICTORY) {
            current = ef[2];
        }
        if (tipo == TipoEfeitosSonoros.PAUSED) {
            current = ef[3];
        }


        current.play();
    }

    /**
     * Para de tocar efeito sonoro. Até o momento este método não foi utilizado.
     */

    public void stopSoundEffect() {
        current.stop();
    }
}
